1. Field of the Invention
The present invention relates to client/server applications. More specifically, the present invention relates to a method and an apparatus for facilitating the operation of a client/server application regardless of whether a client is online or offline.
2. Related Art
The increased computing power of mobile computing devices, and the recent boom in the handheld computing device market have led to a substantial increase in the number of client/server applications. Fueled by the abundance of Wi-Fi “hotspots” and high-bandwidth wireless communication services, users are routinely working “on the road.” However, even with the increasing coverage of wireless communication services, there are many locations where users are unable to connect to corporate networks or to the Internet. In addition, there are many locations, such as on most airplanes, where Internet connectivity is not an option.
In order to maximize productivity, users typically work offline when they are not able to connect to online resources. Unfortunately, most client/server applications do not handle offline work gracefully, if at all. In addition, when the users are finally able to go online, it can be difficult to synchronize their offline work with the corresponding online resources.
Furthermore, programmers are having an increasingly difficult time coding applications that cross the online/offline boundary. For example, due to the abundance of tools for programming web-based applications, along with their relative ease of use, a large number of client/server applications are web-based applications that are accessed via a web browser. These browser applications typically do not have facilities for allowing a user to work offline. As a result, in many instances, programmers completely abandon offline support.
Hence, what is needed is a method and an apparatus that enables a user to work seamlessly whether or not the user's computing device is online or offline.